import { Upload } from '@douyinfe/semi-ui';

// 获取文件扩展名
export const getFileExtension = filename => {
  return filename.slice(((filename.lastIndexOf('.') - 1) >>> 0) + 2);
};

// 格式化时长
export const formatDuration = seconds => {
  if (isNaN(seconds) || seconds === 0) return '00:00';
  const mins = Math.floor(seconds / 60);
  const secs = Math.floor(seconds % 60);
  return `${mins.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`;
};

// 格式化文件大小
export const formatFileSize = bytes => {
  if (bytes < 1024) return bytes + ' B';
  else if (bytes < 1048576) return (bytes / 1024).toFixed(2) + ' KB';
  else return (bytes / 1048576).toFixed(2) + ' MB';
};

// 音频上传配置
export const AUDIO_UPLOAD_CONFIG = {
//   accept: {
//     'audio/*': ['.mp3', '.wav', '.ogg', '.flac', '.aac', '.wma'],
//   },
  accept: '.mp3,.wav,.ogg,.flac,.aac,.wma',
  beforeUpload: ({file, fileList}) => {
    // 检查文件类型
    console.log(file);
    console.log(fileList);
    
    const isAudio = file?.fileInstance?.type.startsWith('audio/');
    if (!isAudio) {
      console.error('请上传音频文件');
      return Upload.LIST_IGNORE;
    }

    // 检查文件大小（这里设置100MB限制）
    const isLt100M = file?.fileInstance?.size / 1024 / 1024 < 800;
    if (!isLt100M) {
      console.error('文件大小不能超过800MB');
      return Upload.LIST_IGNORE;
    }

    return true;
  },
  multiple: false,
  showUploadList: false,
  directory: false,
  action: '/api/upload/audio', // 实际项目中替换为真实的上传接口
};

// 音频MIME类型映射
export const AUDIO_MIME_TYPES = {
  mp3: 'audio/mpeg',
  wav: 'audio/wav',
  ogg: 'audio/ogg',
  flac: 'audio/flac',
  aac: 'audio/aac',
  wma: 'audio/x-ms-wma',
};

// 默认配置选项
export const DEFAULT_OPTIONS = {
  // 本地模式配置
  local: {
    mode: 'local',
    beforeUpload: null,
    formData: {},
  },
  // 服务器上传模式配置
  server: {
    mode: 'server',
    beforeUpload: null,
    formData: {},
  },
};

// 音频菜单配置
// 可以从原有的constants.js中迁移或复用